#ifndef ITERATOR_H
#define ITERATOR_H

#include <cstddef>
class InputIteratorTag {
	
};
class OutputIteratorTag {
	
};
class ForWardIteratorTag {
	
};
class BidirectionalIteratorTag{
	
};
class RandomIteratorTag{
	
};


// 下面实现引用 http://www.cplusplus.com/reference/std/iterator/iterator/

template <class Category, class T, class Distance = ptrdiff_t,
          class Pointer = T*, class Reference = T&>
struct Iterator {
	typedef T         value_type;
	typedef Distance  difference_type;
	typedef Pointer   pointer;
	typedef Reference reference;
	typedef Category  iterator_category;
};


#endif 
